package com.xinchuang.service.targetSystem;

import com.xinchuang.common.Result;
import com.xinchuang.entity.targetSystem.object.SpecialAdd;
import com.xinchuang.entity.targetSystem.system.PostureType;
import com.xinchuang.entity.targetSystem.system.TargetType;

import java.util.List;
import java.util.Map;

/**
 * @ClassName TargetTypeService
 * @Description: TODO(目标类别服务)
 * @Author zhangxuan
 * @Date 2021-03-31 15:57
 * @Verion V1.0
 */
public interface TargetTypeService {

    /**
     * 初始化父级
     */
    void initialize();
    /**
     * 新增目标类别
     */
    Result addTargetType(TargetType targetType);
    /**
     * 删除目标类别
     */
    Result delTargetType(String typeId);
    /**
     * 更新目标类别
     */
    Result updateTargetType(TargetType targetType);

    /**
     * 查询类型类别
     */
    Result<List<Map<String, Object>>> selectTargettype();

    /**
     * 查询目标及子目标类型树
     * @return
     */
    Result<List<Map<String, Object>>> selectTargetAndSubTypeTree();

    /**
     *
     * @param postureType
     * @return
     */
    Result addPostureType(PostureType postureType);

    /**
     *
     * @param typeId
     * @return
     */
    Result deletePostureType(String typeId);

    /**
     *
     * @param postureType
     * @return
     */
    Result updatePostureType(PostureType postureType);

    /**
     *
     * @return
     */
    Result selectPostureType();

    /**
     * 查询体系类型类别
     */
    List<Map<String, Object>> selectSystemsTargettype(List<String> typeList);
    /**
     * 新增私有属性
     */
    Result addSpecialAttribute(SpecialAdd specialAdd);
    /**
     * 删除私有属性
     */
    Result delSpecialAttribute(String id);
    /**
     * 修改私有属性
     */
    Result updateSpecialAttribute(SpecialAdd specialAdd);
    /**
     * 查询私有属性
     */
    Result selectSpecialAttribute(Integer pageNum, Integer pageSize, String typeId);
    /**
     * 新增私有属性
     */
    Result addPostureAttribute(SpecialAdd specialAdd);
    /**
     * 删除私有属性
     */
    Result delPostureAttribute(String id);
    /**
     * 修改私有属性
     */
    Result updatePostureAttribute(SpecialAdd specialAdd);
    /**
     * 查询态势属性
     */
    Result selectPostureAttribute(Integer pageNum, Integer pageSize, String typeId);
    /**
     * 查询类型下拉列表
     */
    Result selectTypePullDown(String targetId, String isSub);
    /**
     * 查询态势类型下拉列表
     */
    Result selectPosturePullDown();

    Result selectTypePull(String paranId);

    /**
     *@author zhangxuan
     *@Description TODO 移动私有属性
     *@Date 17:59 2021/9/14
     *@Param [typeId, type]
     *@return com.zkwc.targetmanage.common.Result
     **/
    Result moveSpecialAttribute(String typeId, String type);

    /**
     *@author zhangxuan
     *@Description TODO 私有属性排序
     *@Date 14:44 2022/5/13
     *@Param [id, sign]
     *@return com.zkwc.targetmanage.common.Result
     **/
    Result getSpecialSort(String id, int sign);

    /**
     * 态势属性排序
     * @param id
     * @param sign
     * @return
     */
    Result getPostureSort(String id, int sign);

}
